Модель хищник-жертва

Морозов М. E.

Российский Университет Дружбы Народов, Moscow, Russian Federation

9 марта 2024

Теоретическое введение

Простейшая модель взаимодействия двух видов типа «хищник — жертва» - модель Лотки-Вольтерры. Данная двувидовая модель основывается на следующих предположениях:

  1. Численность популяции жертв x и хищников y зависят только от времени (модель не учитывает пространственное распределение популяции на занимаемой территории)

Теоретическое введение

  1. В отсутствии взаимодействия численность видов изменяется по модели Мальтуса, при этом число жертв увеличивается, а число хищников падает
  2. Естественная смертность жертвы и естественная рождаемость хищника считаются несущественными
  3. Эффект насыщения численности обеих популяций не учитывается
  4. Скорость роста численности жертв уменьшается пропорционально численности хищников

Теоретическое введение

$$ \begin{cases} \frac{dx}{dt} = (-ax(t) + by(t)x(t)) \\ \frac{dy}{dt} = (cy(t) - dy(t)x(t)) \end{cases} $$

В этой модели x – число жертв, y - число хищников. Коэффициент a описывает скорость естественного прироста числа жертв в отсутствие хищников, с - естественное вымирание хищников, лишенных пищи в виде жертв.

Теоретическое введение

Вероятность взаимодействия жертвы и хищника считается пропорциональной как количеству жертв, так и числу самих хищников (xy). Каждый акт взаимодействия уменьшает популяцию жертв, но способствует увеличению популяции хищников (члены  − bxy и dxy в правой части уравнения).

Цель работы

  1. Построить график зависимости x от y и графики функций x(t), y(t)
  2. Найти стационарное состояние системы

Постановка задачи

В лесу проживают х число волков, питающихся зайцами, число которых в этом же лесу у. Пока число зайцев достаточно велико, для прокормки всех волков, численность волков растет до тех пор, пока не наступит момент, что корма перестанет хватать на всех. Тогда волки начнут умирать, и их численность будет уменьшаться. В этом случае в какой-то момент времени численность зайцев снова начнет увеличиваться, что повлечет за собой новый рост популяции волков. Такой цикл будет повторяться, пока обе популяции будут существовать. Помимо этого, на численность стаи влияют болезни и старение. Данная модель описывается следующим уравнением:

Постановка задачи

a, d - коэффициенты смертности b, c - коэффициенты прироста популяции 1. Построить график зависимости x от y и графики функций x(t), y(t) 2. Найти стационарное состояние системы

Задание

Для модели «хищник-жертва»: $$\dfrac{dx}{dt} = -0.54x(t)-0.031x(t)y(t)$$

$$\dfrac{dy}{dt} = -0.62x(t)+0.07x(t)y(t)$$

Постройте график зависимости численности хищников от численности жертв, а также графики изменения численности хищников и численности жертв при следующих начальных условиях: x0 = 10, y0 = 30. Найдите стационарное состояние системы.

Выполнение лабораторной работы

Код на Julia

Написали код на Julia:

using DifferentialEquations
using Plots
using OrdinaryDiffEq

#Начальные условия
p=[0.54,0.031,0.62,0.07]
x0=10
y0=30

tspan=(0,50)

Код на Julia

#функция
function lotka_volt(u,p,t)
    x,y = u
    a, b, c, d = p
    dx = -a*x + b*x*y
    dy = c*y - d*x*y
    return[dx,dy]
end

код на Julia

#cтационарное сост
x1 = p[3]/p[4]  
y1 = p[1]/p[2]

#опред проблемы
prob1 = ODEProblem(lotka_volt,[x0,y0],tspan,p)
prob2 = ODEProblem(lotka_volt,[x1,y1],tspan,p)

код на Julia

#опред решения
sol1 = solve(prob1, Tsit5(), dtmax=0.05)
sol2 = solve(prob2, Tsit5(), dtmax=0.05)

#графики для 1 и 2 случая а также фазовые портреты.
plot(sol1, title = "Точки x0, y0")
plot(sol1, vars = (2,1), title = "Точки x0, y0")
plot(sol2, title = "Стац. точка")
scatter(sol2, vars = (2,1), title = "Точки x0, y0")

Записали 2 случая на языке OpenModelica

model lab5

parameter Real a = 0.54;
parameter Real b = 0.031;
parameter Real c = 0.62;
parameter Real d = 0.07;

Real x(start = 10);
Real y(start = 30);

equation
  der(x) = -a*x + b*x*y;
  der(y) = c*y - d*x*y;

end lab5;

Записали 2 случая на языке OpenModelica

model lab5

parameter Real a = 0.54;
parameter Real b = 0.031;
parameter Real c = 0.62;
parameter Real d = 0.07;

Real x(start = c/d);
Real y(start = a/b);

equation
  der(x) = -a*x + b*x*y;
  der(y) = c*y - d*x*y;

end lab5;

Получили следующие результаты для случая 1.

Результат работы программы в Julia

График сл 1 джулия

Результат работы программы в Julia

Фазовый портрет сл 1 джулия

Результат работы программы в Open Modelica

График сл 1 моделика

Результат работы программы в Open Modelica

Фазовый портрет сл 1 моделика

Получили следующие результаты для случая 2.

Результат работы программы в Julia

График сл 2 джулия

Результат работы программы в Julia

Фазовый портрет сл 2 джулия

Результат работы программы в Open Modelica

График сл 2 моделика

Результат работы программы в Open Modelica

Фазовый портрет сл 2 моделика

Выводы

  • Построили график зависимости численности хищников от численности жертв, а также графики изменения численности хищников и численности жертв при следующих начальных условиях: x0 = 10, y0 = 30.
  • Нашли стационарное состояние системы.
  • Сравнили результаты на Julia и OpenModelica.